package com.platform.common.core.domain.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 小程序支付账单信息
 * @Author: caoliu
 * @Date: 2024/6/7 14:51
 **/
@Data
public class WechatFeeCheckList {


    /**
     * 业务主键
     */
    private String businessNo;

    /**
     * 运单号前缀
     */
    private String billPrefix;

    /**
     * 运单号后缀
     */
    private String billNo;
    /**
     * 运单号全称
     */
    private String billNoFull;
    /**
     * 业务编号
     * DOM_ARRIVAL_FREIGHT
     * DOM_DEPARTURE_FREIGHT
     * INT_ARRIVAL_FREIGHT
     * INT_DEPARTURE_FREIGHT
     */
    private String businessType;

    /**
     * 运单ID
     */
    private Long mawbId;

    /**
     * 进出港(ARRIVAL进港，DEPARTURE出港)
     */
    private String flightFlow;

    /**
     * 国际国内 DOM国内 INT国际
     */
    private String intflag;

    /**
     * 货代编码
     */
    private String agentCode;


    /** 收费状态0-未收费，1-部分收费 2 收费完成 */
    private String chargingStatus;

    /**
     * 运单中心账单主键id
     */
    private Long checkId;

    /**
     * 结算中心账单id
     */
    private Long feeCenterCheckId;

    /**
     * 运单中心结算单id
     */
    private Long settlementId;

    /**
     * 结算中心结算单id
     */
    private Long feeCenterSettlementId;

    /** 结算用户（结算人） */
    private String payeeName;
    /**
     * 收费类别名称
     */
    private String categoryName;
    /**
     * 收费项
     */
    private String checkItem;

    /**
     * 费率
     */
    private BigDecimal rate;

    /**
     * 账单状态：未支付/已支付/支付中/退款中/已全部退款/部分退款
     */
    private String checkStatus;

    /**
     * 发票类别：普通发票 定额发票
     */
    private String invoiceCategory;

    /**
     * 开票名称
     */
    private String invoiceName;

    /**
     * 开票状态：未开票/已开票/开票中/开票失败/冲红中/冲红成功/冲红失败
     */
    private String invoiceStatus;

    /**
     * 原价金额
     */
    private BigDecimal amount;
    /**
     * 应收金额
     */
    private BigDecimal receivableAmount;

    /**
     * 应收/应付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date receivableTime;

    /**
     * 实收金额
     */
    private BigDecimal actualAmount;

    /**
     * 结算方式：现结/日结/月结
     */
    private String settleWay;

    private boolean checked=false;


}
